package priv.pattern.iteratorpattern;

import priv.pattern.iteratorpattern.pojo.Student;
import priv.pattern.iteratorpattern.setvice.Iterator;
import priv.pattern.iteratorpattern.setvice.impl.Classroom;

/*
 * 作者：m鹏h
 * 时间；2024/8/7 23:10
 * 描述：迭代子模式 （迭代器模式） 客户端
 **/
public class IteratorPatternTest {


 /*
 * 优点：
 * 1：抽象性
 * 2：简化客户端代码
 * 3：支持多种集合类型
 * 4：解耦
 * 缺点：
 * 1：代码复杂性
 * 2：性能开销
 *适用场景：
 * 1：遍历不同类型的集合
 * 2：集合实现可能发生变化
 * 3：提供一致的遍历接口
 *
 * */
    public static void main(String[] args) {
        Classroom classroom = new Classroom();
        classroom.addStudent(new Student("张三", 18));
        classroom.addStudent(new Student("李四", 19));
        classroom.addStudent(new Student("王五", 20));
        //创建一个迭代器对象
        Iterator iterator = classroom.createIterator();
        while (iterator.hasNext()) {
            Student student = (Student) iterator.next();
            System.out.println(student.getName() + ":" + student.getAge());
        }
    }
}
